<?php
//process file image 
// ex: resize, crop, ....
require_once 'phpthumb/ThumbLib.inc.php';
class Cms_Image_PhpThumb{
	
	//tên file 
	protected $filename;
	
	//tên phần mở rộng của file
	protected $extention;
	
	//đường dẫn tới thư mục
	protected $path;
	
	// đường dẫn file gốc
	protected $originFile;
	
	// đường dẫn file mới
	protected $newFile;
	
	protected $height;
	protected $width;
	protected $errors = array();
	protected $prefixName = "";
	public function __construct($file=null,$prefixName=""){
		
		if($file!=null){
			if(file_exists($file) && is_file($file))
			{
					$fileInfo = pathinfo($file);
					$this->filename=$fileInfo['filename'];
					$this->extention=$fileInfo['extension'];
					$this->path=$fileInfo['dirname'];
					$this->prefixName = $prefixName;
					$this->renameFile();
					
			}else{
				//nếu file không tồn tại
				$this->errors[]="file not exits!";
				//return $this->errors;
			}
		}
		else{
			//nếu file không tồn tại
			$this->errors[]="file not exits!";
			//return $this->errors;
		}
	}
	
	//rename file
	// Tra ve ten file
	//
	
	public function renameFile(){
		
		//lấy đường dẫn file hiện tại
		//$currentFile = $this->path."/".$this->filename.".".$this->extention;
		$this->originFile = $this->path."/".$this->filename.".".$this->extention;
		
		//Tên file mới
		$newFileName = $this->prefixName.'-'.time().rand(1,1000);
				
		//đường dẫn file mới
		$this->newFile = $this->path."/".$newFileName.".".$this->extention;		
		
		//nếu file chưa tồn tại
		if(!file_exists($this->newFile))
		{
			//Thực hiện đổi tên
			rename($this->originFile, $this->newFile);
			
			// file đã được đổi tên
			$this->filename=$newFileName;	
			//xóa hình cũ
			//unlink($currentFile);	
			
			
		}else{
			$this->errors[]='tên file mới đã tồn tại,! vui lòng thử lại';
			return;	
		}
 		
		return $this->filename.".".$this->extention;
	}
	
	/*
	 * Resize picture
	 * cấu trúc
	 * array
	 * (
	 * 		array('widht'=>10,'height'=>10,'dir'=>'../image.jpg')
	 * 		array('widht'=>10,'height'=>10,'dir'=>'../image.jpg')
	 * )
	 */	
	
	public function toResize($array=array()){
		
		//nếu có lỗi
		if(count($this->errors)>0){
			return $this->errors;
		}else{//ngược lại
			$originFile = $this->path."/".$this->filename.".".$this->extention;		
			foreach ($array as $item){
				$thumb = PhpThumbFactory::create($originFile);
				$width = (int)$item['width'];
				$height = (int)$item['height'];
				$thumb->resize($width,$height);
				$newFile = $item['dir']."/".$this->filename.".".$this->extention;
				$thumb->save($newFile);
			}
			return $this->getFileName();
		}
	}
	
	//get file name;
	public function getFileName(){
		return $this->filename.".".$this->extention;
	}
}

?>